const mongoose =require('mongoose')
const Schema = mongoose.Schema;

// Create Schema  todo 也可以const userSchema = mongoose.Schema({
const UserSchema = new Schema({
    name:{
        type:String,
        required:true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    avatar: {
        type: String
    },
    //身份：管理员 用户
    identity: {
        type: String,
        required: true
    },
    //fixme 日期type: Date，默认当前日期
    date: {
        type: Date,
        default: Date.now
    }
})
//fixme 连续赋值的写法 users表名  表在数据库可以不建，数据库得有
//fixme 导入时const User = require('../../models/User'); 也可以重命名
module.exports =  User = mongoose.model('users', UserSchema);


// 3.1. 通过Model实例的save()添加数据
function testSave() {
    // fixme 创建UserModel的实例
    const userModel = new User({name: 'Bob', password: '234', email: 'laoban@qq.com',identity:'hhhh'})
    // 调用save()保存
    userModel.save(function (error, user) {
        console.log('save()', error, user)
    })
}
//fixme 这里虽然没有引入连接mongo数据库的代码  但是server.js里有，server.js运行着，这里就能保存进去
// testSave()

/*另一个项目导出方式
// fixme 2.2. 定义Model(与集合对应, 可以操作集合)
const UserModel = mongoose.model('user', userSchema) // 集合为: users
// 2.3. fixme 向外暴露Model
exports.UserModel = UserModel
//fixme 引入时 const {UserModel, ChatModel} = require('../db/models')
*/